The present invention relates to the field of mass-storage devices. More particularly, this invention relates to data integrity and error detection and correction in a disc drive.
One key component of any computer system is a device to store data. Computer systems have many different places where data can be stored. One common place for storing massive amounts of data in a computer system is on a disc drive. The most basic parts of a disc drive are a disc that is rotated, an actuator that moves a transducer to various locations over the disc, and electrical circuitry that is used to write and read data to and from the disc. The disc drive also includes circuitry for encoding data so that it can be successfully retrieved and written to the disc surface. A microprocessor controls most of the operations of the disc drive as well as passing the data back to the requesting computer and taking data from a requesting computer for storing to the disc.
Information representative of data is stored on the surface of the storage disc. Disc drive systems read and write information stored on tracks on storage discs. Transducers, in the form of read/write heads attached to the sliders, located on both sides of the storage disc, read and write information on the storage discs when the transducers are accurately positioned over one of the designated tracks on the surface of the storage disc. The transducer is also said to be moved to a target track. As the storage disc spins and the read/write head is accurately positioned above a target track, the read/write head can store data onto a track by writing information representative of data onto the storage disc. Similarly, reading data on a storage disc is accomplished by positioning the read/write head above a target track and reading the stored material on the storage disc. To write on or read from different tracks, the read/write head is moved radially across the tracks to a selected target track. The data is divided or grouped together on the tracks. In some disc drives, the tracks are a multiplicity of concentric circular tracks. In other disc drives, a continuous spiral is one track on one side of a disc drive. Servo feedback information is used to accurately locate the transducer. The actuator assembly is moved to the required position and held very accurately during a read or write operation using the servo information.
Conventional disc drives and other mass-storage devices provide a variety of error detection and correction (EDAC) schemes. In applications in which data integrity is of the utmost importance, such as medical diagnosis and treatment where data errors can have lethal effects on patients. Furthermore, increasing the efficiency of data storage on disc drives and other mass-storage devices is a perpetual interest for users of mass-storage devices in order to decrease the cost of storage. Prior art products fail to solve all of the problems with the integrity and efficiency of data stored on disc or other mass-storage. Therefore, what is needed is a disc or mass-storage drive with improved data integrity and efficiency of the stored data on the disc or other mass-storage medium.
The present invention provides a solution to this and other problems, and offers the additional advantage of increasing the efficiency of physical data storage over the prior art.
The present invention relates to disc drives or other mass-storage devices that have a novel scheme of error detection and correction which solve the above-mentioned problem of insufficient data integrity for fault-intolerant applications.
In accordance with one embodiment of the invention, a method is provided in which a Cyclic Redundancy Code (CRC) is calculated from each frame of a sector of data. Subsequently, for each sector, a master sector CRC is calculated from each of the frame CRCs. The use of a master CRC calculated from each of the frame CRCs in the sector is referred to as a xe2x80x9cframe-based CRC.xe2x80x9d Subsequently, the Error Correction Code (ECC) of the sector data is calculated. Finally the sector data, master CRC and the ECC are recorded on disc. In accordance with another embodiment of the invention, a method is provided in which a sector of data and a first master CRC is received wherein the master CRC is determined by determining one CRC from each of a plurality of frames of the sector and determining the master CRC from the plurality of frame CRCs and the integrity of the sector and the master CRC is verified. In accordance with another embodiment of the invention, an information handling system is provided which includes a sender, a receiver connected to the sender, and means for receiving from the sender a plurality of data frames and an equal number of CRCs associated with each of the frames and generating a master CRC from the frame CRCs. In accordance with another embodiment of the invention, a mass-storage drive is provided that includes an input port, a mass-storage device connected to the drive, and means for receiving through the input port a plurality of data frames and an equal number of CRCs associated with each of the frames and generating a master CRC from the frame CRCs, discarding the frame CRCs, and transmitting to the mass-storage device the plurality of data frames and the master CRC. In accordance with another embodiment of the invention, a mass-storage drive is provided that includes an input port, a mass-storage device connected to the drive, and means for receiving from the mass-storage device, a sector of data and a first master CRC wherein the master CRC is determined by determining one CRC from each of a plurality of portions of the sector.
The present invention also can be implemented as a computer-readable program storage device which tangibly embodies a program of instructions executable by a computer system to perform the present mass-storage device error detection and correction method.
In accordance with one embodiment of the invention, a method of generating error detection and correction information for data is provided in which at least one data sector is received and an Input/Output Error Detection and Correction checksum (IOEDC), a Cyclic Redundancy Code (CRC) and an ECC is generated from the at least one sector.
The integrity of most types of data transfers is enhanced by frame-based CRCs. More specifically, table 1 below summarizes the four basic types of data transfers that management means or controller for a mass-storage medium will support.
User data is generated as a result of direct user action, such as a user entering and saving text using a word processing file. Non-user data is generated by the computer system for lower-level system support, such as disc-cached data. In table 1, type 1 data transfers involve guaranteed sector data transfers that are written or read exclusively by the host. E.g. data transfers to support mass-storage device read and write commands. In table 1, type 2 data transfers are not guaranteed to be either sectored or non-sectored and which are written or read by the host and/or controller firmware. E.g. Windows(copyright) random access memory (RAM) by the controller firmware to modify the data before the data is transferred to the host computer. In table 1, type 3 data transfers are guaranteed sector data transfers that are written or read exclusively by the firmware, but in which the sector size as the data is to be written or the mass-storage device as the sector size selected by the user application program that originated the write request. In table 1, type 4 data transfers are word-mode data transfers initiated by the ECC correction logic when an error in read data has been detected. Frame-based CRCs improve the integrity of types 1, 2 and 4 data stored on the mass-storage, but do not improve the integrity of data type 3.
Advantageously, the invention increases the integrity of data stored on mass-storage, which is achieved through the use of a master CRC that is calculated from each of the frame CRCs. The use of a master CRC yields much greater data integrity than previous methods of error detection and correction.
Advantageously, the invention reduces format overhead on mass-storage device which is achieved through the use of a master CRC. The use of a master CRC yields such a great increase in data integrity that the use of the IOEDC for error detection and correction may be obsolete. IOEDC for error detection and correction is not recorded on disc, contrary to conventional systems, resulting in reduced format overhead and therefore increased efficiency in the use of storage space on the medium.
Advantageously, the invention reduces controller logic complexity. This is achieved by the present invention because IOEDC logic does not need to be implemented on the controller or the portion of the system that manages the mass-storage.
Advantageously, impact on controller design is minimized. The present invention leverages the use of conventional controller logic because conventional controller chips are typically manufactured with logic that will generate a CRC from data. The present invention uses the existing error detection and correction logic for generating CRCs, therefore, no additional logic to support CRC processing is required. Therefore, the use of existing EDAC logic minimizes changes in controller logic to implement the invention.
Advantageously, data integrity is improved by recording a host of error correction data on disc along with the data sector. This is achieved by recording IOEDC, CRC, and ECC data from the sector, along with the sector.
These and various other features as well as advantages which characterize the present invention will be apparent upon reading of the following detailed description and review of the associated drawings.